import { INCREAMENT, INCREAMENTN } from "../mutation_type";
//判断本地存储中是否有当前count的state数据,如果有则使用,如果没有则使用初始值
const state = {
  count: 0,
  num: 0,
};
const mutations = {
  /* 修改state数据的唯一来源是mutations中的方法,所以我们可以直接在mutations中的方法中进行保存数据 */
  [INCREAMENT](state) {
    state.count++;
  },
  [INCREAMENTN](state, payload) {
    state.count += payload.n;
  },
};
const actions = {
  incrementWait({ commit }) {
    setTimeout(() => {
      commit("increament");
    }, 1000);
  },
  incrementNWait({ commit }, payload) {
    setTimeout(() => {
      commit("increamentN", payload);
    }, 1000);
  },
};
const getters = {
  // getter其实就是组件中的计算属性,根据state的值衍生出来另外一个值
  // 所以getters中要先拿到sate中的值，getters中第一个参数就是state
  countSqrt(state) {
    return Math.sqrt(state.count);
  },
};
export default {
  // 开启命名空间
  namespaced: true,
  state,
  mutations,
  actions,
  getters,
};
